package edu.amm.io;

import edu.amm.common.StringUtils;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 * Утилиты ввода-вывода.
 *
 * @author Иванов Илья
 * @since 2014.03.04
 *
 */
public class IOUtils {

	private static final Logger LOG = Logger.getLogger(IOUtils.class.getCanonicalName());

	/**
	 * Читает строки из файла, игнорируя пустые строки и строки, состоящие из whitespace-символов.
	 *
	 * @param filePath Путь файла.
	 * @return Считанные строки из файла.
	 */
	public static List<String> readNonEmptyStrings(String filePath) {
		if (StringUtils.isNullOrEmpty(filePath)) {
			return null;
		}

		try {
			BufferedReader reader = new BufferedReader(new FileReader(filePath));

			List<String> result = new ArrayList<String>();
			String string;
			while ((string = reader.readLine()) != null) {
				if (StringUtils.isNullOrEmpty(string)) {
					continue;
				}

				result.add(string);
			}

			reader.close();

			return result;
		} catch (IOException e) {
			LOG.log(Level.SEVERE, "Невозможно прочитать файл", e);
			return null;
		}
	}
}
